package com.autohome.wz.business.order.model;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class RefundExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public RefundExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Integer value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Integer value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Integer value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Integer value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Integer value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Integer> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Integer> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Integer value1, Integer value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Integer value1, Integer value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andRelOrdernumIsNull() {
            addCriterion("rel_ordernum is null");
            return (Criteria) this;
        }

        public Criteria andRelOrdernumIsNotNull() {
            addCriterion("rel_ordernum is not null");
            return (Criteria) this;
        }

        public Criteria andRelOrdernumEqualTo(String value) {
            addCriterion("rel_ordernum =", value, "relOrdernum");
            return (Criteria) this;
        }

        public Criteria andRelOrdernumNotEqualTo(String value) {
            addCriterion("rel_ordernum <>", value, "relOrdernum");
            return (Criteria) this;
        }

        public Criteria andRelOrdernumGreaterThan(String value) {
            addCriterion("rel_ordernum >", value, "relOrdernum");
            return (Criteria) this;
        }

        public Criteria andRelOrdernumGreaterThanOrEqualTo(String value) {
            addCriterion("rel_ordernum >=", value, "relOrdernum");
            return (Criteria) this;
        }

        public Criteria andRelOrdernumLessThan(String value) {
            addCriterion("rel_ordernum <", value, "relOrdernum");
            return (Criteria) this;
        }

        public Criteria andRelOrdernumLessThanOrEqualTo(String value) {
            addCriterion("rel_ordernum <=", value, "relOrdernum");
            return (Criteria) this;
        }

        public Criteria andRelOrdernumLike(String value) {
            addCriterion("rel_ordernum like", value, "relOrdernum");
            return (Criteria) this;
        }

        public Criteria andRelOrdernumNotLike(String value) {
            addCriterion("rel_ordernum not like", value, "relOrdernum");
            return (Criteria) this;
        }

        public Criteria andRelOrdernumIn(List<String> values) {
            addCriterion("rel_ordernum in", values, "relOrdernum");
            return (Criteria) this;
        }

        public Criteria andRelOrdernumNotIn(List<String> values) {
            addCriterion("rel_ordernum not in", values, "relOrdernum");
            return (Criteria) this;
        }

        public Criteria andRelOrdernumBetween(String value1, String value2) {
            addCriterion("rel_ordernum between", value1, value2, "relOrdernum");
            return (Criteria) this;
        }

        public Criteria andRelOrdernumNotBetween(String value1, String value2) {
            addCriterion("rel_ordernum not between", value1, value2, "relOrdernum");
            return (Criteria) this;
        }

        public Criteria andRelSubordernumIsNull() {
            addCriterion("rel_subordernum is null");
            return (Criteria) this;
        }

        public Criteria andRelSubordernumIsNotNull() {
            addCriterion("rel_subordernum is not null");
            return (Criteria) this;
        }

        public Criteria andRelSubordernumEqualTo(String value) {
            addCriterion("rel_subordernum =", value, "relSubordernum");
            return (Criteria) this;
        }

        public Criteria andRelSubordernumNotEqualTo(String value) {
            addCriterion("rel_subordernum <>", value, "relSubordernum");
            return (Criteria) this;
        }

        public Criteria andRelSubordernumGreaterThan(String value) {
            addCriterion("rel_subordernum >", value, "relSubordernum");
            return (Criteria) this;
        }

        public Criteria andRelSubordernumGreaterThanOrEqualTo(String value) {
            addCriterion("rel_subordernum >=", value, "relSubordernum");
            return (Criteria) this;
        }

        public Criteria andRelSubordernumLessThan(String value) {
            addCriterion("rel_subordernum <", value, "relSubordernum");
            return (Criteria) this;
        }

        public Criteria andRelSubordernumLessThanOrEqualTo(String value) {
            addCriterion("rel_subordernum <=", value, "relSubordernum");
            return (Criteria) this;
        }

        public Criteria andRelSubordernumLike(String value) {
            addCriterion("rel_subordernum like", value, "relSubordernum");
            return (Criteria) this;
        }

        public Criteria andRelSubordernumNotLike(String value) {
            addCriterion("rel_subordernum not like", value, "relSubordernum");
            return (Criteria) this;
        }

        public Criteria andRelSubordernumIn(List<String> values) {
            addCriterion("rel_subordernum in", values, "relSubordernum");
            return (Criteria) this;
        }

        public Criteria andRelSubordernumNotIn(List<String> values) {
            addCriterion("rel_subordernum not in", values, "relSubordernum");
            return (Criteria) this;
        }

        public Criteria andRelSubordernumBetween(String value1, String value2) {
            addCriterion("rel_subordernum between", value1, value2, "relSubordernum");
            return (Criteria) this;
        }

        public Criteria andRelSubordernumNotBetween(String value1, String value2) {
            addCriterion("rel_subordernum not between", value1, value2, "relSubordernum");
            return (Criteria) this;
        }

        public Criteria andAmountIsNull() {
            addCriterion("amount is null");
            return (Criteria) this;
        }

        public Criteria andAmountIsNotNull() {
            addCriterion("amount is not null");
            return (Criteria) this;
        }

        public Criteria andAmountEqualTo(BigDecimal value) {
            addCriterion("amount =", value, "amount");
            return (Criteria) this;
        }

        public Criteria andAmountNotEqualTo(BigDecimal value) {
            addCriterion("amount <>", value, "amount");
            return (Criteria) this;
        }

        public Criteria andAmountGreaterThan(BigDecimal value) {
            addCriterion("amount >", value, "amount");
            return (Criteria) this;
        }

        public Criteria andAmountGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("amount >=", value, "amount");
            return (Criteria) this;
        }

        public Criteria andAmountLessThan(BigDecimal value) {
            addCriterion("amount <", value, "amount");
            return (Criteria) this;
        }

        public Criteria andAmountLessThanOrEqualTo(BigDecimal value) {
            addCriterion("amount <=", value, "amount");
            return (Criteria) this;
        }

        public Criteria andAmountIn(List<BigDecimal> values) {
            addCriterion("amount in", values, "amount");
            return (Criteria) this;
        }

        public Criteria andAmountNotIn(List<BigDecimal> values) {
            addCriterion("amount not in", values, "amount");
            return (Criteria) this;
        }

        public Criteria andAmountBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("amount between", value1, value2, "amount");
            return (Criteria) this;
        }

        public Criteria andAmountNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("amount not between", value1, value2, "amount");
            return (Criteria) this;
        }

        public Criteria andTradeNoIsNull() {
            addCriterion("trade_no is null");
            return (Criteria) this;
        }

        public Criteria andTradeNoIsNotNull() {
            addCriterion("trade_no is not null");
            return (Criteria) this;
        }

        public Criteria andTradeNoEqualTo(String value) {
            addCriterion("trade_no =", value, "tradeNo");
            return (Criteria) this;
        }

        public Criteria andTradeNoNotEqualTo(String value) {
            addCriterion("trade_no <>", value, "tradeNo");
            return (Criteria) this;
        }

        public Criteria andTradeNoGreaterThan(String value) {
            addCriterion("trade_no >", value, "tradeNo");
            return (Criteria) this;
        }

        public Criteria andTradeNoGreaterThanOrEqualTo(String value) {
            addCriterion("trade_no >=", value, "tradeNo");
            return (Criteria) this;
        }

        public Criteria andTradeNoLessThan(String value) {
            addCriterion("trade_no <", value, "tradeNo");
            return (Criteria) this;
        }

        public Criteria andTradeNoLessThanOrEqualTo(String value) {
            addCriterion("trade_no <=", value, "tradeNo");
            return (Criteria) this;
        }

        public Criteria andTradeNoLike(String value) {
            addCriterion("trade_no like", value, "tradeNo");
            return (Criteria) this;
        }

        public Criteria andTradeNoNotLike(String value) {
            addCriterion("trade_no not like", value, "tradeNo");
            return (Criteria) this;
        }

        public Criteria andTradeNoIn(List<String> values) {
            addCriterion("trade_no in", values, "tradeNo");
            return (Criteria) this;
        }

        public Criteria andTradeNoNotIn(List<String> values) {
            addCriterion("trade_no not in", values, "tradeNo");
            return (Criteria) this;
        }

        public Criteria andTradeNoBetween(String value1, String value2) {
            addCriterion("trade_no between", value1, value2, "tradeNo");
            return (Criteria) this;
        }

        public Criteria andTradeNoNotBetween(String value1, String value2) {
            addCriterion("trade_no not between", value1, value2, "tradeNo");
            return (Criteria) this;
        }

        public Criteria andBillIdIsNull() {
            addCriterion("bill_id is null");
            return (Criteria) this;
        }

        public Criteria andBillIdIsNotNull() {
            addCriterion("bill_id is not null");
            return (Criteria) this;
        }

        public Criteria andBillIdEqualTo(String value) {
            addCriterion("bill_id =", value, "billId");
            return (Criteria) this;
        }

        public Criteria andBillIdNotEqualTo(String value) {
            addCriterion("bill_id <>", value, "billId");
            return (Criteria) this;
        }

        public Criteria andBillIdGreaterThan(String value) {
            addCriterion("bill_id >", value, "billId");
            return (Criteria) this;
        }

        public Criteria andBillIdGreaterThanOrEqualTo(String value) {
            addCriterion("bill_id >=", value, "billId");
            return (Criteria) this;
        }

        public Criteria andBillIdLessThan(String value) {
            addCriterion("bill_id <", value, "billId");
            return (Criteria) this;
        }

        public Criteria andBillIdLessThanOrEqualTo(String value) {
            addCriterion("bill_id <=", value, "billId");
            return (Criteria) this;
        }

        public Criteria andBillIdLike(String value) {
            addCriterion("bill_id like", value, "billId");
            return (Criteria) this;
        }

        public Criteria andBillIdNotLike(String value) {
            addCriterion("bill_id not like", value, "billId");
            return (Criteria) this;
        }

        public Criteria andBillIdIn(List<String> values) {
            addCriterion("bill_id in", values, "billId");
            return (Criteria) this;
        }

        public Criteria andBillIdNotIn(List<String> values) {
            addCriterion("bill_id not in", values, "billId");
            return (Criteria) this;
        }

        public Criteria andBillIdBetween(String value1, String value2) {
            addCriterion("bill_id between", value1, value2, "billId");
            return (Criteria) this;
        }

        public Criteria andBillIdNotBetween(String value1, String value2) {
            addCriterion("bill_id not between", value1, value2, "billId");
            return (Criteria) this;
        }

        public Criteria andAdditionalInfoIsNull() {
            addCriterion("additional_info is null");
            return (Criteria) this;
        }

        public Criteria andAdditionalInfoIsNotNull() {
            addCriterion("additional_info is not null");
            return (Criteria) this;
        }

        public Criteria andAdditionalInfoEqualTo(String value) {
            addCriterion("additional_info =", value, "additionalInfo");
            return (Criteria) this;
        }

        public Criteria andAdditionalInfoNotEqualTo(String value) {
            addCriterion("additional_info <>", value, "additionalInfo");
            return (Criteria) this;
        }

        public Criteria andAdditionalInfoGreaterThan(String value) {
            addCriterion("additional_info >", value, "additionalInfo");
            return (Criteria) this;
        }

        public Criteria andAdditionalInfoGreaterThanOrEqualTo(String value) {
            addCriterion("additional_info >=", value, "additionalInfo");
            return (Criteria) this;
        }

        public Criteria andAdditionalInfoLessThan(String value) {
            addCriterion("additional_info <", value, "additionalInfo");
            return (Criteria) this;
        }

        public Criteria andAdditionalInfoLessThanOrEqualTo(String value) {
            addCriterion("additional_info <=", value, "additionalInfo");
            return (Criteria) this;
        }

        public Criteria andAdditionalInfoLike(String value) {
            addCriterion("additional_info like", value, "additionalInfo");
            return (Criteria) this;
        }

        public Criteria andAdditionalInfoNotLike(String value) {
            addCriterion("additional_info not like", value, "additionalInfo");
            return (Criteria) this;
        }

        public Criteria andAdditionalInfoIn(List<String> values) {
            addCriterion("additional_info in", values, "additionalInfo");
            return (Criteria) this;
        }

        public Criteria andAdditionalInfoNotIn(List<String> values) {
            addCriterion("additional_info not in", values, "additionalInfo");
            return (Criteria) this;
        }

        public Criteria andAdditionalInfoBetween(String value1, String value2) {
            addCriterion("additional_info between", value1, value2, "additionalInfo");
            return (Criteria) this;
        }

        public Criteria andAdditionalInfoNotBetween(String value1, String value2) {
            addCriterion("additional_info not between", value1, value2, "additionalInfo");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNull() {
            addCriterion("create_time is null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNotNull() {
            addCriterion("create_time is not null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeEqualTo(Date value) {
            addCriterion("create_time =", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotEqualTo(Date value) {
            addCriterion("create_time <>", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThan(Date value) {
            addCriterion("create_time >", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("create_time >=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThan(Date value) {
            addCriterion("create_time <", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
            addCriterion("create_time <=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIn(List<Date> values) {
            addCriterion("create_time in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotIn(List<Date> values) {
            addCriterion("create_time not in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeBetween(Date value1, Date value2) {
            addCriterion("create_time between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
            addCriterion("create_time not between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andFinishedTimeIsNull() {
            addCriterion("finished_time is null");
            return (Criteria) this;
        }

        public Criteria andFinishedTimeIsNotNull() {
            addCriterion("finished_time is not null");
            return (Criteria) this;
        }

        public Criteria andFinishedTimeEqualTo(Date value) {
            addCriterion("finished_time =", value, "finishedTime");
            return (Criteria) this;
        }

        public Criteria andFinishedTimeNotEqualTo(Date value) {
            addCriterion("finished_time <>", value, "finishedTime");
            return (Criteria) this;
        }

        public Criteria andFinishedTimeGreaterThan(Date value) {
            addCriterion("finished_time >", value, "finishedTime");
            return (Criteria) this;
        }

        public Criteria andFinishedTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("finished_time >=", value, "finishedTime");
            return (Criteria) this;
        }

        public Criteria andFinishedTimeLessThan(Date value) {
            addCriterion("finished_time <", value, "finishedTime");
            return (Criteria) this;
        }

        public Criteria andFinishedTimeLessThanOrEqualTo(Date value) {
            addCriterion("finished_time <=", value, "finishedTime");
            return (Criteria) this;
        }

        public Criteria andFinishedTimeIn(List<Date> values) {
            addCriterion("finished_time in", values, "finishedTime");
            return (Criteria) this;
        }

        public Criteria andFinishedTimeNotIn(List<Date> values) {
            addCriterion("finished_time not in", values, "finishedTime");
            return (Criteria) this;
        }

        public Criteria andFinishedTimeBetween(Date value1, Date value2) {
            addCriterion("finished_time between", value1, value2, "finishedTime");
            return (Criteria) this;
        }

        public Criteria andFinishedTimeNotBetween(Date value1, Date value2) {
            addCriterion("finished_time not between", value1, value2, "finishedTime");
            return (Criteria) this;
        }

        public Criteria andRemarkIsNull() {
            addCriterion("remark is null");
            return (Criteria) this;
        }

        public Criteria andRemarkIsNotNull() {
            addCriterion("remark is not null");
            return (Criteria) this;
        }

        public Criteria andRemarkEqualTo(String value) {
            addCriterion("remark =", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkNotEqualTo(String value) {
            addCriterion("remark <>", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkGreaterThan(String value) {
            addCriterion("remark >", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkGreaterThanOrEqualTo(String value) {
            addCriterion("remark >=", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkLessThan(String value) {
            addCriterion("remark <", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkLessThanOrEqualTo(String value) {
            addCriterion("remark <=", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkLike(String value) {
            addCriterion("remark like", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkNotLike(String value) {
            addCriterion("remark not like", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkIn(List<String> values) {
            addCriterion("remark in", values, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkNotIn(List<String> values) {
            addCriterion("remark not in", values, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkBetween(String value1, String value2) {
            addCriterion("remark between", value1, value2, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkNotBetween(String value1, String value2) {
            addCriterion("remark not between", value1, value2, "remark");
            return (Criteria) this;
        }

        public Criteria andReasonIsNull() {
            addCriterion("reason is null");
            return (Criteria) this;
        }

        public Criteria andReasonIsNotNull() {
            addCriterion("reason is not null");
            return (Criteria) this;
        }

        public Criteria andReasonEqualTo(String value) {
            addCriterion("reason =", value, "reason");
            return (Criteria) this;
        }

        public Criteria andReasonNotEqualTo(String value) {
            addCriterion("reason <>", value, "reason");
            return (Criteria) this;
        }

        public Criteria andReasonGreaterThan(String value) {
            addCriterion("reason >", value, "reason");
            return (Criteria) this;
        }

        public Criteria andReasonGreaterThanOrEqualTo(String value) {
            addCriterion("reason >=", value, "reason");
            return (Criteria) this;
        }

        public Criteria andReasonLessThan(String value) {
            addCriterion("reason <", value, "reason");
            return (Criteria) this;
        }

        public Criteria andReasonLessThanOrEqualTo(String value) {
            addCriterion("reason <=", value, "reason");
            return (Criteria) this;
        }

        public Criteria andReasonLike(String value) {
            addCriterion("reason like", value, "reason");
            return (Criteria) this;
        }

        public Criteria andReasonNotLike(String value) {
            addCriterion("reason not like", value, "reason");
            return (Criteria) this;
        }

        public Criteria andReasonIn(List<String> values) {
            addCriterion("reason in", values, "reason");
            return (Criteria) this;
        }

        public Criteria andReasonNotIn(List<String> values) {
            addCriterion("reason not in", values, "reason");
            return (Criteria) this;
        }

        public Criteria andReasonBetween(String value1, String value2) {
            addCriterion("reason between", value1, value2, "reason");
            return (Criteria) this;
        }

        public Criteria andReasonNotBetween(String value1, String value2) {
            addCriterion("reason not between", value1, value2, "reason");
            return (Criteria) this;
        }

        public Criteria andStatusIsNull() {
            addCriterion("status is null");
            return (Criteria) this;
        }

        public Criteria andStatusIsNotNull() {
            addCriterion("status is not null");
            return (Criteria) this;
        }

        public Criteria andStatusEqualTo(Integer value) {
            addCriterion("status =", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotEqualTo(Integer value) {
            addCriterion("status <>", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusGreaterThan(Integer value) {
            addCriterion("status >", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusGreaterThanOrEqualTo(Integer value) {
            addCriterion("status >=", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusLessThan(Integer value) {
            addCriterion("status <", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusLessThanOrEqualTo(Integer value) {
            addCriterion("status <=", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusIn(List<Integer> values) {
            addCriterion("status in", values, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotIn(List<Integer> values) {
            addCriterion("status not in", values, "status");
            return (Criteria) this;
        }

        public Criteria andStatusBetween(Integer value1, Integer value2) {
            addCriterion("status between", value1, value2, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotBetween(Integer value1, Integer value2) {
            addCriterion("status not between", value1, value2, "status");
            return (Criteria) this;
        }

        public Criteria andSubmitParamIsNull() {
            addCriterion("submit_param is null");
            return (Criteria) this;
        }

        public Criteria andSubmitParamIsNotNull() {
            addCriterion("submit_param is not null");
            return (Criteria) this;
        }

        public Criteria andSubmitParamEqualTo(String value) {
            addCriterion("submit_param =", value, "submitParam");
            return (Criteria) this;
        }

        public Criteria andSubmitParamNotEqualTo(String value) {
            addCriterion("submit_param <>", value, "submitParam");
            return (Criteria) this;
        }

        public Criteria andSubmitParamGreaterThan(String value) {
            addCriterion("submit_param >", value, "submitParam");
            return (Criteria) this;
        }

        public Criteria andSubmitParamGreaterThanOrEqualTo(String value) {
            addCriterion("submit_param >=", value, "submitParam");
            return (Criteria) this;
        }

        public Criteria andSubmitParamLessThan(String value) {
            addCriterion("submit_param <", value, "submitParam");
            return (Criteria) this;
        }

        public Criteria andSubmitParamLessThanOrEqualTo(String value) {
            addCriterion("submit_param <=", value, "submitParam");
            return (Criteria) this;
        }

        public Criteria andSubmitParamLike(String value) {
            addCriterion("submit_param like", value, "submitParam");
            return (Criteria) this;
        }

        public Criteria andSubmitParamNotLike(String value) {
            addCriterion("submit_param not like", value, "submitParam");
            return (Criteria) this;
        }

        public Criteria andSubmitParamIn(List<String> values) {
            addCriterion("submit_param in", values, "submitParam");
            return (Criteria) this;
        }

        public Criteria andSubmitParamNotIn(List<String> values) {
            addCriterion("submit_param not in", values, "submitParam");
            return (Criteria) this;
        }

        public Criteria andSubmitParamBetween(String value1, String value2) {
            addCriterion("submit_param between", value1, value2, "submitParam");
            return (Criteria) this;
        }

        public Criteria andSubmitParamNotBetween(String value1, String value2) {
            addCriterion("submit_param not between", value1, value2, "submitParam");
            return (Criteria) this;
        }

        public Criteria andNotifyParamIsNull() {
            addCriterion("notify_param is null");
            return (Criteria) this;
        }

        public Criteria andNotifyParamIsNotNull() {
            addCriterion("notify_param is not null");
            return (Criteria) this;
        }

        public Criteria andNotifyParamEqualTo(String value) {
            addCriterion("notify_param =", value, "notifyParam");
            return (Criteria) this;
        }

        public Criteria andNotifyParamNotEqualTo(String value) {
            addCriterion("notify_param <>", value, "notifyParam");
            return (Criteria) this;
        }

        public Criteria andNotifyParamGreaterThan(String value) {
            addCriterion("notify_param >", value, "notifyParam");
            return (Criteria) this;
        }

        public Criteria andNotifyParamGreaterThanOrEqualTo(String value) {
            addCriterion("notify_param >=", value, "notifyParam");
            return (Criteria) this;
        }

        public Criteria andNotifyParamLessThan(String value) {
            addCriterion("notify_param <", value, "notifyParam");
            return (Criteria) this;
        }

        public Criteria andNotifyParamLessThanOrEqualTo(String value) {
            addCriterion("notify_param <=", value, "notifyParam");
            return (Criteria) this;
        }

        public Criteria andNotifyParamLike(String value) {
            addCriterion("notify_param like", value, "notifyParam");
            return (Criteria) this;
        }

        public Criteria andNotifyParamNotLike(String value) {
            addCriterion("notify_param not like", value, "notifyParam");
            return (Criteria) this;
        }

        public Criteria andNotifyParamIn(List<String> values) {
            addCriterion("notify_param in", values, "notifyParam");
            return (Criteria) this;
        }

        public Criteria andNotifyParamNotIn(List<String> values) {
            addCriterion("notify_param not in", values, "notifyParam");
            return (Criteria) this;
        }

        public Criteria andNotifyParamBetween(String value1, String value2) {
            addCriterion("notify_param between", value1, value2, "notifyParam");
            return (Criteria) this;
        }

        public Criteria andNotifyParamNotBetween(String value1, String value2) {
            addCriterion("notify_param not between", value1, value2, "notifyParam");
            return (Criteria) this;
        }

        public Criteria andApplicationUserIsNull() {
            addCriterion("application_user is null");
            return (Criteria) this;
        }

        public Criteria andApplicationUserIsNotNull() {
            addCriterion("application_user is not null");
            return (Criteria) this;
        }

        public Criteria andApplicationUserEqualTo(String value) {
            addCriterion("application_user =", value, "applicationUser");
            return (Criteria) this;
        }

        public Criteria andApplicationUserNotEqualTo(String value) {
            addCriterion("application_user <>", value, "applicationUser");
            return (Criteria) this;
        }

        public Criteria andApplicationUserGreaterThan(String value) {
            addCriterion("application_user >", value, "applicationUser");
            return (Criteria) this;
        }

        public Criteria andApplicationUserGreaterThanOrEqualTo(String value) {
            addCriterion("application_user >=", value, "applicationUser");
            return (Criteria) this;
        }

        public Criteria andApplicationUserLessThan(String value) {
            addCriterion("application_user <", value, "applicationUser");
            return (Criteria) this;
        }

        public Criteria andApplicationUserLessThanOrEqualTo(String value) {
            addCriterion("application_user <=", value, "applicationUser");
            return (Criteria) this;
        }

        public Criteria andApplicationUserLike(String value) {
            addCriterion("application_user like", value, "applicationUser");
            return (Criteria) this;
        }

        public Criteria andApplicationUserNotLike(String value) {
            addCriterion("application_user not like", value, "applicationUser");
            return (Criteria) this;
        }

        public Criteria andApplicationUserIn(List<String> values) {
            addCriterion("application_user in", values, "applicationUser");
            return (Criteria) this;
        }

        public Criteria andApplicationUserNotIn(List<String> values) {
            addCriterion("application_user not in", values, "applicationUser");
            return (Criteria) this;
        }

        public Criteria andApplicationUserBetween(String value1, String value2) {
            addCriterion("application_user between", value1, value2, "applicationUser");
            return (Criteria) this;
        }

        public Criteria andApplicationUserNotBetween(String value1, String value2) {
            addCriterion("application_user not between", value1, value2, "applicationUser");
            return (Criteria) this;
        }

        public Criteria andRefundTradeNoIsNull() {
            addCriterion("refund_trade_no is null");
            return (Criteria) this;
        }

        public Criteria andRefundTradeNoIsNotNull() {
            addCriterion("refund_trade_no is not null");
            return (Criteria) this;
        }

        public Criteria andRefundTradeNoEqualTo(String value) {
            addCriterion("refund_trade_no =", value, "refundTradeNo");
            return (Criteria) this;
        }

        public Criteria andRefundTradeNoNotEqualTo(String value) {
            addCriterion("refund_trade_no <>", value, "refundTradeNo");
            return (Criteria) this;
        }

        public Criteria andRefundTradeNoGreaterThan(String value) {
            addCriterion("refund_trade_no >", value, "refundTradeNo");
            return (Criteria) this;
        }

        public Criteria andRefundTradeNoGreaterThanOrEqualTo(String value) {
            addCriterion("refund_trade_no >=", value, "refundTradeNo");
            return (Criteria) this;
        }

        public Criteria andRefundTradeNoLessThan(String value) {
            addCriterion("refund_trade_no <", value, "refundTradeNo");
            return (Criteria) this;
        }

        public Criteria andRefundTradeNoLessThanOrEqualTo(String value) {
            addCriterion("refund_trade_no <=", value, "refundTradeNo");
            return (Criteria) this;
        }

        public Criteria andRefundTradeNoLike(String value) {
            addCriterion("refund_trade_no like", value, "refundTradeNo");
            return (Criteria) this;
        }

        public Criteria andRefundTradeNoNotLike(String value) {
            addCriterion("refund_trade_no not like", value, "refundTradeNo");
            return (Criteria) this;
        }

        public Criteria andRefundTradeNoIn(List<String> values) {
            addCriterion("refund_trade_no in", values, "refundTradeNo");
            return (Criteria) this;
        }

        public Criteria andRefundTradeNoNotIn(List<String> values) {
            addCriterion("refund_trade_no not in", values, "refundTradeNo");
            return (Criteria) this;
        }

        public Criteria andRefundTradeNoBetween(String value1, String value2) {
            addCriterion("refund_trade_no between", value1, value2, "refundTradeNo");
            return (Criteria) this;
        }

        public Criteria andRefundTradeNoNotBetween(String value1, String value2) {
            addCriterion("refund_trade_no not between", value1, value2, "refundTradeNo");
            return (Criteria) this;
        }

        public Criteria andOrderRestoreCopyIsNull() {
            addCriterion("order_restore_copy is null");
            return (Criteria) this;
        }

        public Criteria andOrderRestoreCopyIsNotNull() {
            addCriterion("order_restore_copy is not null");
            return (Criteria) this;
        }

        public Criteria andOrderRestoreCopyEqualTo(String value) {
            addCriterion("order_restore_copy =", value, "orderRestoreCopy");
            return (Criteria) this;
        }

        public Criteria andOrderRestoreCopyNotEqualTo(String value) {
            addCriterion("order_restore_copy <>", value, "orderRestoreCopy");
            return (Criteria) this;
        }

        public Criteria andOrderRestoreCopyGreaterThan(String value) {
            addCriterion("order_restore_copy >", value, "orderRestoreCopy");
            return (Criteria) this;
        }

        public Criteria andOrderRestoreCopyGreaterThanOrEqualTo(String value) {
            addCriterion("order_restore_copy >=", value, "orderRestoreCopy");
            return (Criteria) this;
        }

        public Criteria andOrderRestoreCopyLessThan(String value) {
            addCriterion("order_restore_copy <", value, "orderRestoreCopy");
            return (Criteria) this;
        }

        public Criteria andOrderRestoreCopyLessThanOrEqualTo(String value) {
            addCriterion("order_restore_copy <=", value, "orderRestoreCopy");
            return (Criteria) this;
        }

        public Criteria andOrderRestoreCopyLike(String value) {
            addCriterion("order_restore_copy like", value, "orderRestoreCopy");
            return (Criteria) this;
        }

        public Criteria andOrderRestoreCopyNotLike(String value) {
            addCriterion("order_restore_copy not like", value, "orderRestoreCopy");
            return (Criteria) this;
        }

        public Criteria andOrderRestoreCopyIn(List<String> values) {
            addCriterion("order_restore_copy in", values, "orderRestoreCopy");
            return (Criteria) this;
        }

        public Criteria andOrderRestoreCopyNotIn(List<String> values) {
            addCriterion("order_restore_copy not in", values, "orderRestoreCopy");
            return (Criteria) this;
        }

        public Criteria andOrderRestoreCopyBetween(String value1, String value2) {
            addCriterion("order_restore_copy between", value1, value2, "orderRestoreCopy");
            return (Criteria) this;
        }

        public Criteria andOrderRestoreCopyNotBetween(String value1, String value2) {
            addCriterion("order_restore_copy not between", value1, value2, "orderRestoreCopy");
            return (Criteria) this;
        }

        public Criteria andExecTimeIsNull() {
            addCriterion("exec_time is null");
            return (Criteria) this;
        }

        public Criteria andExecTimeIsNotNull() {
            addCriterion("exec_time is not null");
            return (Criteria) this;
        }

        public Criteria andExecTimeEqualTo(Date value) {
            addCriterion("exec_time =", value, "execTime");
            return (Criteria) this;
        }

        public Criteria andExecTimeNotEqualTo(Date value) {
            addCriterion("exec_time <>", value, "execTime");
            return (Criteria) this;
        }

        public Criteria andExecTimeGreaterThan(Date value) {
            addCriterion("exec_time >", value, "execTime");
            return (Criteria) this;
        }

        public Criteria andExecTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("exec_time >=", value, "execTime");
            return (Criteria) this;
        }

        public Criteria andExecTimeLessThan(Date value) {
            addCriterion("exec_time <", value, "execTime");
            return (Criteria) this;
        }

        public Criteria andExecTimeLessThanOrEqualTo(Date value) {
            addCriterion("exec_time <=", value, "execTime");
            return (Criteria) this;
        }

        public Criteria andExecTimeIn(List<Date> values) {
            addCriterion("exec_time in", values, "execTime");
            return (Criteria) this;
        }

        public Criteria andExecTimeNotIn(List<Date> values) {
            addCriterion("exec_time not in", values, "execTime");
            return (Criteria) this;
        }

        public Criteria andExecTimeBetween(Date value1, Date value2) {
            addCriterion("exec_time between", value1, value2, "execTime");
            return (Criteria) this;
        }

        public Criteria andExecTimeNotBetween(Date value1, Date value2) {
            addCriterion("exec_time not between", value1, value2, "execTime");
            return (Criteria) this;
        }

        public Criteria andLastAbortOperIsNull() {
            addCriterion("last_abort_oper is null");
            return (Criteria) this;
        }

        public Criteria andLastAbortOperIsNotNull() {
            addCriterion("last_abort_oper is not null");
            return (Criteria) this;
        }

        public Criteria andLastAbortOperEqualTo(String value) {
            addCriterion("last_abort_oper =", value, "lastAbortOper");
            return (Criteria) this;
        }

        public Criteria andLastAbortOperNotEqualTo(String value) {
            addCriterion("last_abort_oper <>", value, "lastAbortOper");
            return (Criteria) this;
        }

        public Criteria andLastAbortOperGreaterThan(String value) {
            addCriterion("last_abort_oper >", value, "lastAbortOper");
            return (Criteria) this;
        }

        public Criteria andLastAbortOperGreaterThanOrEqualTo(String value) {
            addCriterion("last_abort_oper >=", value, "lastAbortOper");
            return (Criteria) this;
        }

        public Criteria andLastAbortOperLessThan(String value) {
            addCriterion("last_abort_oper <", value, "lastAbortOper");
            return (Criteria) this;
        }

        public Criteria andLastAbortOperLessThanOrEqualTo(String value) {
            addCriterion("last_abort_oper <=", value, "lastAbortOper");
            return (Criteria) this;
        }

        public Criteria andLastAbortOperLike(String value) {
            addCriterion("last_abort_oper like", value, "lastAbortOper");
            return (Criteria) this;
        }

        public Criteria andLastAbortOperNotLike(String value) {
            addCriterion("last_abort_oper not like", value, "lastAbortOper");
            return (Criteria) this;
        }

        public Criteria andLastAbortOperIn(List<String> values) {
            addCriterion("last_abort_oper in", values, "lastAbortOper");
            return (Criteria) this;
        }

        public Criteria andLastAbortOperNotIn(List<String> values) {
            addCriterion("last_abort_oper not in", values, "lastAbortOper");
            return (Criteria) this;
        }

        public Criteria andLastAbortOperBetween(String value1, String value2) {
            addCriterion("last_abort_oper between", value1, value2, "lastAbortOper");
            return (Criteria) this;
        }

        public Criteria andLastAbortOperNotBetween(String value1, String value2) {
            addCriterion("last_abort_oper not between", value1, value2, "lastAbortOper");
            return (Criteria) this;
        }

        public Criteria andLastAbortTimeIsNull() {
            addCriterion("last_abort_time is null");
            return (Criteria) this;
        }

        public Criteria andLastAbortTimeIsNotNull() {
            addCriterion("last_abort_time is not null");
            return (Criteria) this;
        }

        public Criteria andLastAbortTimeEqualTo(Date value) {
            addCriterion("last_abort_time =", value, "lastAbortTime");
            return (Criteria) this;
        }

        public Criteria andLastAbortTimeNotEqualTo(Date value) {
            addCriterion("last_abort_time <>", value, "lastAbortTime");
            return (Criteria) this;
        }

        public Criteria andLastAbortTimeGreaterThan(Date value) {
            addCriterion("last_abort_time >", value, "lastAbortTime");
            return (Criteria) this;
        }

        public Criteria andLastAbortTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("last_abort_time >=", value, "lastAbortTime");
            return (Criteria) this;
        }

        public Criteria andLastAbortTimeLessThan(Date value) {
            addCriterion("last_abort_time <", value, "lastAbortTime");
            return (Criteria) this;
        }

        public Criteria andLastAbortTimeLessThanOrEqualTo(Date value) {
            addCriterion("last_abort_time <=", value, "lastAbortTime");
            return (Criteria) this;
        }

        public Criteria andLastAbortTimeIn(List<Date> values) {
            addCriterion("last_abort_time in", values, "lastAbortTime");
            return (Criteria) this;
        }

        public Criteria andLastAbortTimeNotIn(List<Date> values) {
            addCriterion("last_abort_time not in", values, "lastAbortTime");
            return (Criteria) this;
        }

        public Criteria andLastAbortTimeBetween(Date value1, Date value2) {
            addCriterion("last_abort_time between", value1, value2, "lastAbortTime");
            return (Criteria) this;
        }

        public Criteria andLastAbortTimeNotBetween(Date value1, Date value2) {
            addCriterion("last_abort_time not between", value1, value2, "lastAbortTime");
            return (Criteria) this;
        }

        public Criteria andRetryIsNull() {
            addCriterion("retry is null");
            return (Criteria) this;
        }

        public Criteria andRetryIsNotNull() {
            addCriterion("retry is not null");
            return (Criteria) this;
        }

        public Criteria andRetryEqualTo(Integer value) {
            addCriterion("retry =", value, "retry");
            return (Criteria) this;
        }

        public Criteria andRetryNotEqualTo(Integer value) {
            addCriterion("retry <>", value, "retry");
            return (Criteria) this;
        }

        public Criteria andRetryGreaterThan(Integer value) {
            addCriterion("retry >", value, "retry");
            return (Criteria) this;
        }

        public Criteria andRetryGreaterThanOrEqualTo(Integer value) {
            addCriterion("retry >=", value, "retry");
            return (Criteria) this;
        }

        public Criteria andRetryLessThan(Integer value) {
            addCriterion("retry <", value, "retry");
            return (Criteria) this;
        }

        public Criteria andRetryLessThanOrEqualTo(Integer value) {
            addCriterion("retry <=", value, "retry");
            return (Criteria) this;
        }

        public Criteria andRetryIn(List<Integer> values) {
            addCriterion("retry in", values, "retry");
            return (Criteria) this;
        }

        public Criteria andRetryNotIn(List<Integer> values) {
            addCriterion("retry not in", values, "retry");
            return (Criteria) this;
        }

        public Criteria andRetryBetween(Integer value1, Integer value2) {
            addCriterion("retry between", value1, value2, "retry");
            return (Criteria) this;
        }

        public Criteria andRetryNotBetween(Integer value1, Integer value2) {
            addCriterion("retry not between", value1, value2, "retry");
            return (Criteria) this;
        }

        public Criteria andTypeIsNull() {
            addCriterion("type is null");
            return (Criteria) this;
        }

        public Criteria andTypeIsNotNull() {
            addCriterion("type is not null");
            return (Criteria) this;
        }

        public Criteria andTypeEqualTo(Integer value) {
            addCriterion("type =", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeNotEqualTo(Integer value) {
            addCriterion("type <>", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeGreaterThan(Integer value) {
            addCriterion("type >", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeGreaterThanOrEqualTo(Integer value) {
            addCriterion("type >=", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeLessThan(Integer value) {
            addCriterion("type <", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeLessThanOrEqualTo(Integer value) {
            addCriterion("type <=", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeIn(List<Integer> values) {
            addCriterion("type in", values, "type");
            return (Criteria) this;
        }

        public Criteria andTypeNotIn(List<Integer> values) {
            addCriterion("type not in", values, "type");
            return (Criteria) this;
        }

        public Criteria andTypeBetween(Integer value1, Integer value2) {
            addCriterion("type between", value1, value2, "type");
            return (Criteria) this;
        }

        public Criteria andTypeNotBetween(Integer value1, Integer value2) {
            addCriterion("type not between", value1, value2, "type");
            return (Criteria) this;
        }

        public Criteria andOrderIdIsNull() {
            addCriterion("order_id is null");
            return (Criteria) this;
        }

        public Criteria andOrderIdIsNotNull() {
            addCriterion("order_id is not null");
            return (Criteria) this;
        }

        public Criteria andOrderIdEqualTo(Integer value) {
            addCriterion("order_id =", value, "orderId");
            return (Criteria) this;
        }

        public Criteria andOrderIdNotEqualTo(Integer value) {
            addCriterion("order_id <>", value, "orderId");
            return (Criteria) this;
        }

        public Criteria andOrderIdGreaterThan(Integer value) {
            addCriterion("order_id >", value, "orderId");
            return (Criteria) this;
        }

        public Criteria andOrderIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("order_id >=", value, "orderId");
            return (Criteria) this;
        }

        public Criteria andOrderIdLessThan(Integer value) {
            addCriterion("order_id <", value, "orderId");
            return (Criteria) this;
        }

        public Criteria andOrderIdLessThanOrEqualTo(Integer value) {
            addCriterion("order_id <=", value, "orderId");
            return (Criteria) this;
        }

        public Criteria andOrderIdIn(List<Integer> values) {
            addCriterion("order_id in", values, "orderId");
            return (Criteria) this;
        }

        public Criteria andOrderIdNotIn(List<Integer> values) {
            addCriterion("order_id not in", values, "orderId");
            return (Criteria) this;
        }

        public Criteria andOrderIdBetween(Integer value1, Integer value2) {
            addCriterion("order_id between", value1, value2, "orderId");
            return (Criteria) this;
        }

        public Criteria andOrderIdNotBetween(Integer value1, Integer value2) {
            addCriterion("order_id not between", value1, value2, "orderId");
            return (Criteria) this;
        }

        public Criteria andOrderDetailIdIsNull() {
            addCriterion("order_detail_id is null");
            return (Criteria) this;
        }

        public Criteria andOrderDetailIdIsNotNull() {
            addCriterion("order_detail_id is not null");
            return (Criteria) this;
        }

        public Criteria andOrderDetailIdEqualTo(Integer value) {
            addCriterion("order_detail_id =", value, "orderDetailId");
            return (Criteria) this;
        }

        public Criteria andOrderDetailIdNotEqualTo(Integer value) {
            addCriterion("order_detail_id <>", value, "orderDetailId");
            return (Criteria) this;
        }

        public Criteria andOrderDetailIdGreaterThan(Integer value) {
            addCriterion("order_detail_id >", value, "orderDetailId");
            return (Criteria) this;
        }

        public Criteria andOrderDetailIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("order_detail_id >=", value, "orderDetailId");
            return (Criteria) this;
        }

        public Criteria andOrderDetailIdLessThan(Integer value) {
            addCriterion("order_detail_id <", value, "orderDetailId");
            return (Criteria) this;
        }

        public Criteria andOrderDetailIdLessThanOrEqualTo(Integer value) {
            addCriterion("order_detail_id <=", value, "orderDetailId");
            return (Criteria) this;
        }

        public Criteria andOrderDetailIdIn(List<Integer> values) {
            addCriterion("order_detail_id in", values, "orderDetailId");
            return (Criteria) this;
        }

        public Criteria andOrderDetailIdNotIn(List<Integer> values) {
            addCriterion("order_detail_id not in", values, "orderDetailId");
            return (Criteria) this;
        }

        public Criteria andOrderDetailIdBetween(Integer value1, Integer value2) {
            addCriterion("order_detail_id between", value1, value2, "orderDetailId");
            return (Criteria) this;
        }

        public Criteria andOrderDetailIdNotBetween(Integer value1, Integer value2) {
            addCriterion("order_detail_id not between", value1, value2, "orderDetailId");
            return (Criteria) this;
        }

        public Criteria andRefundCouponSettleIdIsNull() {
            addCriterion("refund_coupon_settle_id is null");
            return (Criteria) this;
        }

        public Criteria andRefundCouponSettleIdIsNotNull() {
            addCriterion("refund_coupon_settle_id is not null");
            return (Criteria) this;
        }

        public Criteria andRefundCouponSettleIdEqualTo(Integer value) {
            addCriterion("refund_coupon_settle_id =", value, "refundCouponSettleId");
            return (Criteria) this;
        }

        public Criteria andRefundCouponSettleIdNotEqualTo(Integer value) {
            addCriterion("refund_coupon_settle_id <>", value, "refundCouponSettleId");
            return (Criteria) this;
        }

        public Criteria andRefundCouponSettleIdGreaterThan(Integer value) {
            addCriterion("refund_coupon_settle_id >", value, "refundCouponSettleId");
            return (Criteria) this;
        }

        public Criteria andRefundCouponSettleIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("refund_coupon_settle_id >=", value, "refundCouponSettleId");
            return (Criteria) this;
        }

        public Criteria andRefundCouponSettleIdLessThan(Integer value) {
            addCriterion("refund_coupon_settle_id <", value, "refundCouponSettleId");
            return (Criteria) this;
        }

        public Criteria andRefundCouponSettleIdLessThanOrEqualTo(Integer value) {
            addCriterion("refund_coupon_settle_id <=", value, "refundCouponSettleId");
            return (Criteria) this;
        }

        public Criteria andRefundCouponSettleIdIn(List<Integer> values) {
            addCriterion("refund_coupon_settle_id in", values, "refundCouponSettleId");
            return (Criteria) this;
        }

        public Criteria andRefundCouponSettleIdNotIn(List<Integer> values) {
            addCriterion("refund_coupon_settle_id not in", values, "refundCouponSettleId");
            return (Criteria) this;
        }

        public Criteria andRefundCouponSettleIdBetween(Integer value1, Integer value2) {
            addCriterion("refund_coupon_settle_id between", value1, value2, "refundCouponSettleId");
            return (Criteria) this;
        }

        public Criteria andRefundCouponSettleIdNotBetween(Integer value1, Integer value2) {
            addCriterion("refund_coupon_settle_id not between", value1, value2, "refundCouponSettleId");
            return (Criteria) this;
        }

        public Criteria andRefundDiscountSettleIdIsNull() {
            addCriterion("refund_discount_settle_id is null");
            return (Criteria) this;
        }

        public Criteria andRefundDiscountSettleIdIsNotNull() {
            addCriterion("refund_discount_settle_id is not null");
            return (Criteria) this;
        }

        public Criteria andRefundDiscountSettleIdEqualTo(Integer value) {
            addCriterion("refund_discount_settle_id =", value, "refundDiscountSettleId");
            return (Criteria) this;
        }

        public Criteria andRefundDiscountSettleIdNotEqualTo(Integer value) {
            addCriterion("refund_discount_settle_id <>", value, "refundDiscountSettleId");
            return (Criteria) this;
        }

        public Criteria andRefundDiscountSettleIdGreaterThan(Integer value) {
            addCriterion("refund_discount_settle_id >", value, "refundDiscountSettleId");
            return (Criteria) this;
        }

        public Criteria andRefundDiscountSettleIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("refund_discount_settle_id >=", value, "refundDiscountSettleId");
            return (Criteria) this;
        }

        public Criteria andRefundDiscountSettleIdLessThan(Integer value) {
            addCriterion("refund_discount_settle_id <", value, "refundDiscountSettleId");
            return (Criteria) this;
        }

        public Criteria andRefundDiscountSettleIdLessThanOrEqualTo(Integer value) {
            addCriterion("refund_discount_settle_id <=", value, "refundDiscountSettleId");
            return (Criteria) this;
        }

        public Criteria andRefundDiscountSettleIdIn(List<Integer> values) {
            addCriterion("refund_discount_settle_id in", values, "refundDiscountSettleId");
            return (Criteria) this;
        }

        public Criteria andRefundDiscountSettleIdNotIn(List<Integer> values) {
            addCriterion("refund_discount_settle_id not in", values, "refundDiscountSettleId");
            return (Criteria) this;
        }

        public Criteria andRefundDiscountSettleIdBetween(Integer value1, Integer value2) {
            addCriterion("refund_discount_settle_id between", value1, value2, "refundDiscountSettleId");
            return (Criteria) this;
        }

        public Criteria andRefundDiscountSettleIdNotBetween(Integer value1, Integer value2) {
            addCriterion("refund_discount_settle_id not between", value1, value2, "refundDiscountSettleId");
            return (Criteria) this;
        }

        public Criteria andRelObjIdIsNull() {
            addCriterion("rel_obj_id is null");
            return (Criteria) this;
        }

        public Criteria andRelObjIdIsNotNull() {
            addCriterion("rel_obj_id is not null");
            return (Criteria) this;
        }

        public Criteria andRelObjIdEqualTo(String value) {
            addCriterion("rel_obj_id =", value, "relObjId");
            return (Criteria) this;
        }

        public Criteria andRelObjIdNotEqualTo(String value) {
            addCriterion("rel_obj_id <>", value, "relObjId");
            return (Criteria) this;
        }

        public Criteria andRelObjIdGreaterThan(String value) {
            addCriterion("rel_obj_id >", value, "relObjId");
            return (Criteria) this;
        }

        public Criteria andRelObjIdGreaterThanOrEqualTo(String value) {
            addCriterion("rel_obj_id >=", value, "relObjId");
            return (Criteria) this;
        }

        public Criteria andRelObjIdLessThan(String value) {
            addCriterion("rel_obj_id <", value, "relObjId");
            return (Criteria) this;
        }

        public Criteria andRelObjIdLessThanOrEqualTo(String value) {
            addCriterion("rel_obj_id <=", value, "relObjId");
            return (Criteria) this;
        }

        public Criteria andRelObjIdLike(String value) {
            addCriterion("rel_obj_id like", value, "relObjId");
            return (Criteria) this;
        }

        public Criteria andRelObjIdNotLike(String value) {
            addCriterion("rel_obj_id not like", value, "relObjId");
            return (Criteria) this;
        }

        public Criteria andRelObjIdIn(List<String> values) {
            addCriterion("rel_obj_id in", values, "relObjId");
            return (Criteria) this;
        }

        public Criteria andRelObjIdNotIn(List<String> values) {
            addCriterion("rel_obj_id not in", values, "relObjId");
            return (Criteria) this;
        }

        public Criteria andRelObjIdBetween(String value1, String value2) {
            addCriterion("rel_obj_id between", value1, value2, "relObjId");
            return (Criteria) this;
        }

        public Criteria andRelObjIdNotBetween(String value1, String value2) {
            addCriterion("rel_obj_id not between", value1, value2, "relObjId");
            return (Criteria) this;
        }

        public Criteria andDatatypeIsNull() {
            addCriterion("dataType is null");
            return (Criteria) this;
        }

        public Criteria andDatatypeIsNotNull() {
            addCriterion("dataType is not null");
            return (Criteria) this;
        }

        public Criteria andDatatypeEqualTo(Integer value) {
            addCriterion("dataType =", value, "datatype");
            return (Criteria) this;
        }

        public Criteria andDatatypeNotEqualTo(Integer value) {
            addCriterion("dataType <>", value, "datatype");
            return (Criteria) this;
        }

        public Criteria andDatatypeGreaterThan(Integer value) {
            addCriterion("dataType >", value, "datatype");
            return (Criteria) this;
        }

        public Criteria andDatatypeGreaterThanOrEqualTo(Integer value) {
            addCriterion("dataType >=", value, "datatype");
            return (Criteria) this;
        }

        public Criteria andDatatypeLessThan(Integer value) {
            addCriterion("dataType <", value, "datatype");
            return (Criteria) this;
        }

        public Criteria andDatatypeLessThanOrEqualTo(Integer value) {
            addCriterion("dataType <=", value, "datatype");
            return (Criteria) this;
        }

        public Criteria andDatatypeIn(List<Integer> values) {
            addCriterion("dataType in", values, "datatype");
            return (Criteria) this;
        }

        public Criteria andDatatypeNotIn(List<Integer> values) {
            addCriterion("dataType not in", values, "datatype");
            return (Criteria) this;
        }

        public Criteria andDatatypeBetween(Integer value1, Integer value2) {
            addCriterion("dataType between", value1, value2, "datatype");
            return (Criteria) this;
        }

        public Criteria andDatatypeNotBetween(Integer value1, Integer value2) {
            addCriterion("dataType not between", value1, value2, "datatype");
            return (Criteria) this;
        }

        public Criteria andUpdatetimestampIsNull() {
            addCriterion("updatetimestamp is null");
            return (Criteria) this;
        }

        public Criteria andUpdatetimestampIsNotNull() {
            addCriterion("updatetimestamp is not null");
            return (Criteria) this;
        }

        public Criteria andUpdatetimestampEqualTo(Long value) {
            addCriterion("updatetimestamp =", value, "updatetimestamp");
            return (Criteria) this;
        }

        public Criteria andUpdatetimestampNotEqualTo(Long value) {
            addCriterion("updatetimestamp <>", value, "updatetimestamp");
            return (Criteria) this;
        }

        public Criteria andUpdatetimestampGreaterThan(Long value) {
            addCriterion("updatetimestamp >", value, "updatetimestamp");
            return (Criteria) this;
        }

        public Criteria andUpdatetimestampGreaterThanOrEqualTo(Long value) {
            addCriterion("updatetimestamp >=", value, "updatetimestamp");
            return (Criteria) this;
        }

        public Criteria andUpdatetimestampLessThan(Long value) {
            addCriterion("updatetimestamp <", value, "updatetimestamp");
            return (Criteria) this;
        }

        public Criteria andUpdatetimestampLessThanOrEqualTo(Long value) {
            addCriterion("updatetimestamp <=", value, "updatetimestamp");
            return (Criteria) this;
        }

        public Criteria andUpdatetimestampIn(List<Long> values) {
            addCriterion("updatetimestamp in", values, "updatetimestamp");
            return (Criteria) this;
        }

        public Criteria andUpdatetimestampNotIn(List<Long> values) {
            addCriterion("updatetimestamp not in", values, "updatetimestamp");
            return (Criteria) this;
        }

        public Criteria andUpdatetimestampBetween(Long value1, Long value2) {
            addCriterion("updatetimestamp between", value1, value2, "updatetimestamp");
            return (Criteria) this;
        }

        public Criteria andUpdatetimestampNotBetween(Long value1, Long value2) {
            addCriterion("updatetimestamp not between", value1, value2, "updatetimestamp");
            return (Criteria) this;
        }

        public Criteria andRelOrdernumLikeInsensitive(String value) {
            addCriterion("upper(rel_ordernum) like", value.toUpperCase(), "relOrdernum");
            return (Criteria) this;
        }

        public Criteria andRelSubordernumLikeInsensitive(String value) {
            addCriterion("upper(rel_subordernum) like", value.toUpperCase(), "relSubordernum");
            return (Criteria) this;
        }

        public Criteria andTradeNoLikeInsensitive(String value) {
            addCriterion("upper(trade_no) like", value.toUpperCase(), "tradeNo");
            return (Criteria) this;
        }

        public Criteria andBillIdLikeInsensitive(String value) {
            addCriterion("upper(bill_id) like", value.toUpperCase(), "billId");
            return (Criteria) this;
        }

        public Criteria andAdditionalInfoLikeInsensitive(String value) {
            addCriterion("upper(additional_info) like", value.toUpperCase(), "additionalInfo");
            return (Criteria) this;
        }

        public Criteria andRemarkLikeInsensitive(String value) {
            addCriterion("upper(remark) like", value.toUpperCase(), "remark");
            return (Criteria) this;
        }

        public Criteria andReasonLikeInsensitive(String value) {
            addCriterion("upper(reason) like", value.toUpperCase(), "reason");
            return (Criteria) this;
        }

        public Criteria andSubmitParamLikeInsensitive(String value) {
            addCriterion("upper(submit_param) like", value.toUpperCase(), "submitParam");
            return (Criteria) this;
        }

        public Criteria andNotifyParamLikeInsensitive(String value) {
            addCriterion("upper(notify_param) like", value.toUpperCase(), "notifyParam");
            return (Criteria) this;
        }

        public Criteria andApplicationUserLikeInsensitive(String value) {
            addCriterion("upper(application_user) like", value.toUpperCase(), "applicationUser");
            return (Criteria) this;
        }

        public Criteria andRefundTradeNoLikeInsensitive(String value) {
            addCriterion("upper(refund_trade_no) like", value.toUpperCase(), "refundTradeNo");
            return (Criteria) this;
        }

        public Criteria andOrderRestoreCopyLikeInsensitive(String value) {
            addCriterion("upper(order_restore_copy) like", value.toUpperCase(), "orderRestoreCopy");
            return (Criteria) this;
        }

        public Criteria andLastAbortOperLikeInsensitive(String value) {
            addCriterion("upper(last_abort_oper) like", value.toUpperCase(), "lastAbortOper");
            return (Criteria) this;
        }

        public Criteria andRelObjIdLikeInsensitive(String value) {
            addCriterion("upper(rel_obj_id) like", value.toUpperCase(), "relObjId");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}